package work.mediway.mdm.biz.mapper.dict;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

import work.mediway.mdm.biz.vo.dict.CtCodeSystemVO;
import work.mediway.mdm.biz.vo.dict.DictListVO;
import work.mediway.mdm.biz.dto.dict.CodeSystemDTO;
import work.mediway.mdm.biz.dto.dict.DictListDTO;
import work.mediway.mdm.biz.entity.dict.CtCodeSystem;

@Mapper
public interface CtCodeSystemMapper extends BaseMapper<CtCodeSystem> {
    /**
     * 查询字典详细信息
     *
     * @param page    Page<DictDetailVO>
     * @param dictDTO DictDetailDTO
     * @return List<DictDetailVO>
     */
    List<DictListVO> listCodeSystem(@Param("page") Page<DictListVO> page, @Param("dictDTO") DictListDTO dictDTO);

    /**
     * 更新CodeSystemCode表信息
     *
     * @param codeSystems List<CodeSystemDTO>
     */
    void updateDataCountByCodeBatch(@Param("codeSystems") List<CodeSystemDTO> codeSystems);

    /**
     * 更新CodeSystemCode表信息
     *
     * @param codeSystem List<CodeSystemDTO>
     */
    void updateDataCountByCode(@Param("codeSystem") CodeSystemDTO codeSystem);

    /**
     * 获取表模型列表
     *
     * @param page       Page<DictDetailVO>
     * @param codeSystem CodeSystemDTO
     * @return List<CtCodeSystemVO>
     */
    List<CtCodeSystemVO> selectAllTable(@Param("page") Page<CtCodeSystemVO> page, @Param("codeSystem") CodeSystemDTO codeSystem);
}